package com.mc.lp.database.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

import com.mc.lp.database.entity.AttachmentEntity;
import com.mc.lp.database.entity.type.RecordType;
import com.mc.lp.shared.vo.FileVo;
/*
 * @author aphanda
 * @date Sep 29, 2014
 * @time 10:16:21 PM
 */
import com.mc.lp.shared.vo.SearchCriteriaVO;

public interface IAttachmentDAO extends IGenericDAO<AttachmentEntity, Long>{
	

	public List<AttachmentEntity> fetchAttachments(SearchCriteriaVO criteria) throws DataAccessException;
	
	public void saveMultipleAttachments(List<AttachmentEntity> attachmentList) throws DataAccessException;
	
	public void deleteAttachment(Long id) throws DataAccessException;
	
	public AttachmentEntity fetchAttachment(SearchCriteriaVO criteria) throws DataAccessException;
	
	public List<AttachmentEntity> fetchAttachmentWithoutData(SearchCriteriaVO criteria) throws DataAccessException;
	
	
	public AttachmentEntity saveAttachment(AttachmentEntity attachmentEntity , FileVo fileVO) throws DataAccessException;
	
	public AttachmentEntity getAttachmentByRecordTypeAndIdentifiers(Long entityId, Long recordId, RecordType recordType) throws DataAccessException;
	
	public List<AttachmentEntity> fetchAttachmentsByGrade(Long entityId, Integer grade, RecordType recordType, boolean isDataRequired) throws DataAccessException;
	
}
